Blog

Let’s get cooking with CommandBox Recipes!

Luis Majano February 13, 2015

Spread the word

Luis Majano

February 13, 2015

Spread the word


Share your thoughts

One exciting feature about CommandBox is the ability to group commands together into a lovingly little file we call, a recipe.  We even gave it its own extension, .boxr.  This little gem will allow you to automate several commands from your native shell, it will be faster to use our recipe command that allows you to run several CommandBox commands at once. This will allow you to only load the CommandBox engine once for all those commands, but still be dumped back at your native prompt when done. Recipes can also just be useful for a series of commands you run on a regular basis, from test executions, to compressing files, the possibilities are endless.  

Below is a simple example of how to create a recipe and execute it.  For further insight, we recommend you read our chapter on recipes in our CommandBox book.

How to start?

Recipes are modern batch files or shell scripts for those unix fans.It has the capability to execute commands just like if you are in the shell, have comments and even have the ability to do argument binding. Technically a recipe can have any file extension, but the default recommendation is .boxr which stands for "box recipe". Lines that start with a # will be ignored as comments. just like in many batch files.  Here is a nice example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Named param
echo "Hello $name, we are ready to start your recipe"
# Positional param
echo "Hello $1, we are ready to start your recipe"
 
 
# Start with an empty folder
rm mySite --recurse --force
mkdir mySite
cd mySite
 
# Initialize this folder as a package
init name=mySite version=1.0.0 slug=mySlug
 
# Scaffold out a site and a handler
coldbox create app mySite
coldbox create handler myHandler index
 
# Add some required package
install coldbox
install cbmessagebox,cbstorages,cbvaidation
 
# Set the default port
package set defaultPort=8081
 
# Start up the embedded server
start

 

Executing Your Recipe

You will use the recipe command in order to execute recipes.  You can find much more information about the recipe command by typing recipe help or visiting the API Docs.

recipe myrecipe.boxr

If you have named parameters you would execute it like this:

recipe recipeFile=myrecipe.boxr name=Luis

If you have positional parameters you would execute it like this:

recipe myrecipe.boxr Luis

As you can see, very nicely you can bind your recipes with dynamic content and automate pretty much anything.  We even have a contribution type in ForgeBox for all CommandBox recipes, so please share them with the world.

Add Your Comment

(2)

Dec 03, 2018 09:36:48 UTC

by Travis

Links on this post are broken.

Dec 03, 2018 16:00:06 UTC

by Brad Wood

Thanks, I've updated the links.

Recent Entries

The Into the Box 2025 Agenda is LIVE and Done!

The Into the Box 2025 Agenda is LIVE and Done!

The wait is over! The official Into the Box 2025 agenda is now live — and it's packed with high-impact sessions designed for modern CFML and BoxLang developers. Whether you’re building APIs, modernizing legacy apps, diving into serverless, or exploring AI integrations, this is the conference you’ve been waiting for.

Here’s a look at what you can expect — categorized by key topics to help you plan your learning journey, there’s something for everyone covering modern CFML tools and BoxLang:

Maria Jose Herrera
Maria Jose Herrera
April 15, 2025
Only 2 Days Left to Lock In Early Bird Pricing for Into the Box 2025!

Only 2 Days Left to Lock In Early Bird Pricing for Into the Box 2025!

The countdown is on. You have just two days left to secure your Early Bird ticket  for just $199 to Into the Box 2025 before prices increase on April 16.

We are proud to offer an engaging and high-value online experience for developers around the world. With a virtual ticket, you get more than just access — you get ongoing value that supports your growth long after the conference ends.

Maria Jose Herrera
Maria Jose Herrera
April 14, 2025
BoxLang is Going Stable — Join Us for the Big Reveal at Into the Box 2025!

BoxLang is Going Stable — Join Us for the Big Reveal at Into the Box 2025!

BoxLang is the modern, flexible JVM language you've been waiting for. We know what it’s like to need better tools, more freedom, and the ability to scale without limits — because we’ve been there too. That’s why we’re building BoxLang with you and for you. Your feedback, ideas, and needs shape its future.

We’re committed to fair pricing, real support, and a growing ecosystem designed to help us all modernize, innovate, and thrive — together.

Maria Jose Herrera
Maria Jose Herrera
April 14, 2025